// 1. 引入Node.js内置的EventEmitter和util模块
const EventEmitter = require('events');
const util = require('util');

/**
 * Dog构造函数
 * @param {string} name - 狗的名字
 * @param {number} energy - 初始精力值（决定吠叫次数）
 */
function Dog(name, energy) {
  // 确保父类EventEmitter的构造函数被正确调用，初始化事件相关属性
  EventEmitter.call(this);

  // 初始化Dog实例的属性
  this.name = name;
  this.energy = energy; // 精力值，每次吠叫减1，为0时停止
}

// 2. 借助util.inherits实现Dog对EventEmitter的继承
// 使Dog实例能使用on()、emit()等EventEmitter的方法
util.inherits(Dog, EventEmitter);

// 3. 导出Dog构造函数，供其他文件引入
module.exports = Dog;